<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ws test</title>
    <link rel="icon" href="data:;base64,=">
</head>
<body>

</body>
<script>
    var ws = new WebSocket("ws://127.0.0.1:9501");
    //readyState属性返回实例对象的当前状态，共有四种。
    //CONNECTING：值为0，表示正在连接。
    //OPEN：值为1，表示连接成功，可以通信了。
    //CLOSING：值为2，表示连接正在关闭。
    //CLOSED：值为3，表示连接已经关闭，或者打开连接失败
    //例如：if (ws.readyState == WebSocket.CONNECTING) { }

    //【用于指定连接成功后的回调函数】
    ws.onopen = function (evt) {
        console.log("连接中 ...");
        ws.send("Hello WebSockets!");
    };
    //【用于指定收到服务器数据后的回调函数】
    //【服务器数据有可能是文本，也有可能是二进制数据，需要判断】
    ws.onmessage = function (evt) {
        if (typeof evt.data == "string") {
            console.log("收到字符型数据");
        }

        if (evt.data instanceof ArrayBuffer) {
            var buffer = evt.data;
            console.log("收到arraybuffer数据");
        }
        console.log("接收到数据: " + evt.data);
        // ws.close();
    };

    //【用于指定连接关闭后的回调函数。】
    ws.onclose = function (evt) {
        console.log("连接已关闭."+ evt.code + ' ' + evt.reason + ' ' + evt.wasClean);
    };

    //webSocket.onerror 用于指定报错时的回调函数
    ws.onerror = function (evt) {
        console.log('连接失败');
    };
</script>
</html>